package cn.sccdlg.mybatis2.dao;

import cn.sccdlg.mybatis2.domain.QueryVo;
import cn.sccdlg.mybatis2.domain.SysUser;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author RaoShuang
 * @emil 991207823@qq.com
 * @date 2020/10/14 21:09
 * 用户的DAO层接口
 */
@Mapper
public interface UserDao {

    /**
     * 查询所有用户
     */
    List<SysUser> findAll();

    /**
     * 保存用户
     * @param user 用户对象
     */
    void saveUser(SysUser user);

    /**
     * 更新用户
     * @param user 用户对象
     */
    void updateUser(SysUser user);

    /**
     * 根据Id删除用户
     * @param userId 用户id
     */
    void deleteUser(Integer userId);

    /**
     * 根据id查询用户信息
     * @param userId 用户ID
     * @return
     */
    SysUser findById(Integer userId);

    /**
     * 根据名称模糊查询用户信息
     * @param username 用户名
     * @return
     */
    List<SysUser> findByName(String username);

    /**
     * 根据名称模糊查询用户信息
     * @param username 用户名
     * @return
     */
    List<SysUser> findByName2(String username);

    /**
     * 查询总用户数
     * @return
     */
    int findTotal();

    /**
     * 根据queryVo中的条件查询用户
     * @param vo
     * @return
     */
    List<SysUser> findUserByVo(QueryVo vo);

}
